function getXMLObject()  //Haetaan XML-objekti
{
    var xmlHttp = false;
    try {
        xmlHttp = new ActiveXObject("Msxml2.XMLHTTP")  // Vanhoille MS -selaimille
    }
    catch (e) {
        try {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")  // Microsoft IE 6.0+
        }
        catch (e2) {
            xmlHttp = false   // XMLHTTP ei ole tuettu selaimessa
        }
    }
    if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
        xmlHttp = new XMLHttpRequest();        //Mozilla ja opera
    //alert("Selain tunnistettu Mozillaksi");
    }
    return xmlHttp;  // Pakollinen metodi joka palauttaa xml -objektin
}

var xmlhttp = new getXMLObject(); //xmlhttp holds the ajax object

function vali() {
    if(xmlhttp) {
        var validoitavaArvo = document.getElementById("validointiTeksti");
        xmlhttp.open("POST","validoinnintestaus",true); //LÃƒÂ¤hetetÃƒÂ¤ÃƒÂ¤n pyyntÃƒÂ¶ servletille validoinnintestaus
        xmlhttp.onreadystatechange  = handleServerResponse;
        xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xmlhttp.send("validoitavaArvo=" + validoitavaArvo.value); //LÃƒÂ¤hetetÃƒÂ¤ÃƒÂ¤n postilla arvo servletille
        alert("Sendittiin validointiin: "+validoitavaArvo.value);
        handleServerResponse();
    }
}

function handleServerResponse() {
    if (xmlhttp.readyState == 4) {
        if(xmlhttp.status == 200) {
            document.vastaus.message.innerHTML=xmlhttp.responseText; //Laitetaan vastauksen arvo nÃƒÂ¤kyviin sivulle
            alert("Saatiin vastaus.");
        }
        else {
            alert("AJAX virhe.");
        }
    }
}

function validoi(kenttaId){
    var validoitava = document.getElementById(kenttaId.id);
    var kenttaTyyppi = validoitava.name; //Eli minkÃ¤tyyppinen arvo siis validoidaan

    //alert (kentta);
    ajax('AjaxValidointiServlet', validoitava.value, vastausFunktio, kenttaId, kenttaTyyppi);
}

function validoiPopupilla(kenttaId){
    var validoitava = document.getElementById(kenttaId.id);
    var kenttaTyyppi = validoitava.name; //Eli minkÃ¤tyyppinen arvo siis validoidaan

    //alert (kentta);
    ajax('AjaxValidointiServlet', validoitava.value, vastausFunktioAlert, kenttaId, kenttaTyyppi);
}

function ajax(url, arvo, paluuFunktio, kenttaId, kenttaTyyppi) {
    //alert(kenttaTyyppi);
    //TODO: kenttÃ¤tyypin kytkentÃ¤
    var request =  new XMLHttpRequest();
    //request.setRequestHeader("Content-Type", "text/plain; charset=UTF-8");
    if (request.overrideMimeType) {
        request.overrideMimeType('text/xml; charset=ISO-8859-1');
    }


    request.open("POST", url, true);
    //request.setRequestHeader("Content-Type", "application/x-javascript;");

    //request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    //request.setRequestHeader("Content-length", apu.length);

    request.onreadystatechange = function() {
        if (request.readyState == 4 && request.status == 200) {
            if (request.responseText) {
                paluuFunktio(request.responseText, kenttaId);
            }
        }
    };
    var erotin = '#';
    var validoitava = kenttaTyyppi + erotin + arvo;
    request.send("validoitavaArvo=" + validoitava); //Posting txtname to Servlet
}

function vastausFunktio(vastaus, kenttaId) {
    //alert("vastaus "+kenttaId.id);

    var muutettava = document.getElementById(kenttaId.id);
    //var vastTeksti;
    if (vastaus==1){
        //vastTeksti = document.createTextNode('');
        muutettava.style.color = "black";
        document.getElementById('v_'+kenttaId.id).innerHTML = "";
    }
    else {
        //vastTeksti = document.createTextNode(vastaus);
        muutettava.style.color = "red";
        document.getElementById('v_'+kenttaId.id).style.color = "red";
        var testaus = document.getElementById('v_'+kenttaId.id);
        document.getElementById('v_'+kenttaId.id).innerHTML = vastaus;

    }
}

function vastausFunktioAlert(vastaus, kenttaId) {
    var muutettava = document.getElementById(kenttaId.id);
    if (vastaus==1){
        muutettava.style.color = "black";
        document.getElementById(kenttaId).nextSibling.innerHTML = "";
        alert(kenttaId+vastaus);
    }
    else {
        muutettava.style.color = "red";
        document.getElementById(kenttaId).nextSibling.innerHTML = vastaus;
    }
}


